1. Field of the Invention
The present invention relates to protocols and, more particularly, to protocols that enable bidirectional communication through a parallel interface.
2. Description of Related Art
Ports are well known to those skilled in the electronic arts as places of access to a device or network where energy may be supplied or withdrawn or where the device or network variables may be observed or measured. Ports may be classified into one of two categories: serial, or parallel. As may be expected, serial ports involve time sequential processing or handling, and parallel ports involve simultaneous processing or handling.
Within the microprocessor arts the term "ports" encompasses "gates" or openings for data to pass from the outside world to the microprocessor system, or vice versa. Microprocessors include both serial and parallel ports. Historically, the serial port has been widely recognized to be useful in communicating with modems, WANS and the like, and a large variety of software has been developed that supports serial communication. Parallel ports, on the other hand, have traditionally been used only for relatively mundane tasks such as printing and plotting, primarily because they have been perceived as being unidirectional only.
Recently it has begun to be appreciated among those skilled in the art that a standard parallel port is bidirectional, that is, you can input or output on as many as twelve lines simultaneously. A serial card, on the other hand, can only input or output on a single line, one bit at a time. Comparing operation of the two reveals the relative power of the parallel port: it can output a byte and a half in the time it takes a serial port to determine whether it is time to cause a singular transaction.
Also very recently it has begun to be appreciated by those skilled in the art that there are certain advantages to using a parallel port for the sort of communication normally associated with a serial port. A number of these advantages are expressed by Ross Greenburg in a article entitled "Adapting the Parallel Port for Bidirectional Communication", which article can be found beginning on page 107 of the September 1990 issue of the Microsoft Systems Journal. In that article Mr. Greenberg points out that communication does not always need to be performed in ASCII. Examples of such occasions would be when the ON/OFF condition of a sensor is being read or when a wire to a relay is turned ON or OFF. It is wholly unnecessary to use a serial port in such cases--the real world can be very easily connected to a parallel port. Mr. Greenberg also notes that because a parallel port is able to get multiple bits in or out simultaneously, it should be able to provide faster I/O than a serial port. Of course, special code and protocols, such as the protocol taught herein, are required to take full advantage of the capabilities of a parallel port.
As the present invention specifically deals with communication involving a printer, it is appropriate to consider communication with such printers as part of the related art. In order to fully exploit the capabilities of a printer, such as a PostScript printer, a host computer must be able to send queries and receive the corresponding replies. Of course, as previously mentioned, bidirectional communication, here between a host computer and a printer, can be provided by a serial interface. However, as only very recently recognized, bidirectional communication at much higher speeds may also be provided by a parallel interface. Those skilled in the art have not yet tapped this latter capability to provide users of host computer and printer systems the functionality of the serial interface without sacrificing the ease of installation and higher transfer speeds of the parallel interface. Accordingly, it is a shortcoming and deficiency of the prior art that no one has heretofore developed a viable protocol to allow bidirectional communication between a host computer and a printer over a parallel interface.